(function(root){
	var C = function(){}
	/**
	 * 获取鼠标位置
	 */
	C.prototype.getOffset=function(canvas){
		var that = this;
		var mouse = {x:0,y:0}
		canvas.addEventListener('mousemove',function(ev){
			var {x,y} = that.eventWrapper(ev)
			mouse.x = x;
			mouse.y = y;
		})
		return mouse
	}
	/**
	 * 对事件进行包装
	 * @param {Object} ev
	 */
	C.prototype.eventWrapper = function(ev){
		// 获取鼠标距离文档页面的距离pageX,pageY
		var {pageX,pageY,target} =  ev;
		// 获取canvas距离文档的距离left,top
		var {left,top} = target.getBoundingClientRect()
		// 那么鼠标距离canvas的距离就是：
		return {x:pageX-left,y:pageY-top}
	}
	/**
	 * 角度转弧度
	 * @param {Object} angle 角度
	 */
	C.prototype.toRad = function(angle){
		return angle * Math.PI / 180
	}
	/**
	 * 弧度转角度
	 * @param {Object} rad 弧度
	 */
	C.prototype.toAngle = function(rad){
		return rad * 180 / Math.PI
	}
	/**
	 * 生成随机数
	 * @param {Object} arr 最大最小数数组[10,20]
	 * @param {Object} int 是否生成整数
	 */
	C.prototype.random = function (arr,int){
		var max = Math.max(...arr)
		var min = Math.min(...arr)
		var random = Math.random() * (max-min) + min 
		return int?parseInt(random):random
	}
	/**
	 * 生成随机颜色
	 */
	C.prototype.createColor = function(){
		return `rgb(${55+this.random([0,200],true)},${55+this.random([0,200],true)},${55+this.random([0,200],true)})`
	}
	
	root.$C = new C()
})(this)